$(function(){
    let layer = layui.layer
    let form = layui.form
    let laypage = layui.laypage
    // 定义一个查询的参数对象，将来请求数据的时候，
// 需要将请求参数对象提交到服务器
    let q = {
        pagenum : 1,    // 页码值，默认请求第一页的数据
        pagesize : 2,   // 每页显示几条数据，默认每页显示2条
        cate_id : '',   // 文章分类的 Id
        state: ''    // 文章的发布状态
    }
// 定义一个时间过滤器
template.defaults.imports.dataFromat = function(val) {
    let dt = new Date(val)
    // 定义年月日
    let y = dt.getFullYear()
    let m = padZero(dt.getMonth()+1)
    let d =padZero(dt.getDate())
    // 定义时分秒
    let h = padZero(dt.getHours())
    let mm =padZero(dt.getMinutes())
    let s = padZero(dt.getSeconds()) 

    return `${y}-${m}-${d}   ${h}:${mm}:${s}`
}
// 补零函数
function padZero(n) {
    return n>9 ? n : '0' + n
}

    initTable()
    initCate()
    // 获取文章列表数据的方法
    function initTable() {
        $.ajax({
            method : 'GET',
            url : 'my/article/list',
            data : q,
            success : function(res) {
                if(res.status !==0) {
                    return layer.msg('获取文章列表失败')
                }
                layer.msg('获取文章列表成功')
                // 使用模板字符串渲染
                let htmlStr = template('tpl-table',res)
                $('tbody').html(htmlStr)

                // 传入total数据到函数，渲染
                renderPage(res.total)
            }
        })
    }

    // 获取下拉框数据
    function initCate() {
        $.ajax ({
            method : 'GET',
            url : 'my/article/cates',
            success : function(res) {
                if(res.status !==0) {
                    return layer.msg('获取下拉分类数据失败')
                }
                layer.msg('获取下拉分类数据成功')
                
                let htmlStr = template('tpl-cate',res)
                $('[name=cate_id]').html(htmlStr)
                form.render()
            }
        })
    }

    // 筛选表单绑定submit事件
    $('#form-search').on('submit',function(e){
        e.preventDefault()
        let cate_id = $('[name=cate_id]').val() 
        // console.log(cate_id);
        let state = $('[name=state]').val() 
        // console.log(state);

        // 给查询参数对象q中对应的属性赋值
        q.cate_id = cate_id
        q.state = state
        // 根据最新的筛选条件，重新渲染表格
        initTable()
    })
    // 调用laypage.render()方法渲染分页
    function renderPage(total) {
        // console.log(total);
        
        laypage.render({
            elem : 'pageBox', //分页容器的id
            count : total,  //总数据条数
            limit : q.pagesize, // 每页显示几条数据
            curr: q.pagenum, // 设置默认显示的分页
            layout : ['count','limit','prev','page','next','skip'],
            limits : [2,3,5,10,15],
            jump : function(obj,first) {
                console.log(obj.curr);
                q.pagenum = obj.curr
                q.pagesize = obj.limit //把最新的条目数，赋值到q这个查询参数对象的pagesize属性中
                // 判断first的值
                if(!first) {
                    initTable() 
                }
            }
            
        })
    }

    // 使用事件委托，绑定删除点击事件
    $('tbody').on('click','.btn-delete',function(){
        let len = $('.btn-delete').length
        // 获取到文章的id
        let id = $(this).data('id')
        layer.confirm('确认删除？',{icon:3,title:'提示'},function(index){
            $.ajax({
                method : 'GET',
                url : 'my/article/delete/'+id,
                success : function(res){
                    console.log(res);
                    if(res.status !==0) {
                        return layer.msg('删除失败')
                    }
                    layer.msg('删除成功')
                    // 判断当前页面有无文章数据
                    // if(len === 1) {
                    //     // 判断一下页码值必须等于一
                    //     q.pagenum = q.pagenum ===1? q.pagenum : q.pagenum-1
                    // }
                    if(len === 1 && q.pagenum>1) {
                        // 判断一下页码值必须等于一
                        q.pagenum--
                    }
                    initTable()
                }
            })
        })

    })
})